package com.cmh.mynfc;

import android.app.PendingIntent;
import android.content.Intent;
import android.nfc.NfcAdapter;
import android.provider.Settings;

import androidx.appcompat.app.AppCompatActivity;

public class MyBaseNfcActivity extends AppCompatActivity {
    public NfcAdapter mNfcAdapter;
    public PendingIntent mPendingIntent;

    private String TAG = "Android";
    @Override
    protected void onStart() {
        super.onStart();
        mNfcAdapter = NfcAdapter.getDefaultAdapter(this);

        if(mNfcAdapter == null){
            //to to sth..
            return;
        }
        else{
            if(!mNfcAdapter.isEnabled()){
                Intent nfcSet = new Intent(Settings.ACTION_NFC_SETTINGS);
                startActivity(nfcSet);
            }
        }
        // 用于感应到NFC时启动该Activity
        // 这里建议将处理NFC的子类的launchMode设置成singleTop模式，这样感应到标签时就会回调onNewIntent，而不会重复打开页面
        mPendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, getClass()), 0);
    }
    /**
     * 获得焦点，按钮可以点击
     */
   /* @Override
    public void onResume() {
        super.onResume();
        Log.d(TAG, "bbbbbbbbbbbbbbbbbbbbbbb");
        // 设置当该页面处于前台时，NFC标签会直接交给该页面处理
        if (mNfcAdapter != null) {
         //   Toast.makeText(getApplicationContext(),"NFC标签已离开",Toast.LENGTH_SHORT).show();
            mNfcAdapter.enableForegroundDispatch(this, mPendingIntent, null, null);
        }

    }*/
    /**
     * 暂停Activity，界面获取焦点，按钮可以点击
     */
    @Override
    public void onPause() {
        super.onPause();
        // 当页面不可见时，NFC标签不交给当前页面处理
        if (mNfcAdapter != null) {
            mNfcAdapter.disableForegroundDispatch(this);
        }
    }
}
